package com.honghe.system.service;

import java.util.List;
import com.honghe.system.domain.SysAttendanceLeave;

/**
 * 请假申请Service接口
 * 
 * @author honghe
 */
public interface ISysAttendanceLeaveService 
{
    /**
     * 查询请假申请
     * 
     * @param leaveId 请假申请主键
     * @return 请假申请
     */
    public SysAttendanceLeave selectSysAttendanceLeaveByLeaveId(Long leaveId);

    /**
     * 查询请假申请列表
     * 
     * @param sysAttendanceLeave 请假申请
     * @return 请假申请集合
     */
    public List<SysAttendanceLeave> selectSysAttendanceLeaveList(SysAttendanceLeave sysAttendanceLeave);

    /**
     * 新增请假申请
     * 
     * @param sysAttendanceLeave 请假申请
     * @return 结果
     */
    public int insertSysAttendanceLeave(SysAttendanceLeave sysAttendanceLeave);

    /**
     * 修改请假申请
     * 
     * @param sysAttendanceLeave 请假申请
     * @return 结果
     */
    public int updateSysAttendanceLeave(SysAttendanceLeave sysAttendanceLeave);

    /**
     * 批量删除请假申请
     * 
     * @param leaveIds 需要删除的请假申请主键集合
     * @return 结果
     */
    public int deleteSysAttendanceLeaveByLeaveIds(Long[] leaveIds);

    /**
     * 删除请假申请信息
     * 
     * @param leaveId 请假申请主键
     * @return 结果
     */
    public int deleteSysAttendanceLeaveByLeaveId(Long leaveId);
    
    /**
     * 提交请假申请
     * 
     * @param sysAttendanceLeave 请假申请
     * @return 结果
     */
    public int applyLeave(SysAttendanceLeave sysAttendanceLeave);
    
    /**
     * 审批请假申请
     * 
     * @param leaveId 请假申请ID
     * @param status 审批状态
     * @param remark 审批备注
     * @return 结果
     */
    public int approveLeave(Long leaveId, String status, String remark);
} 